Spring JDBC
- Spring框架对JDBC的简单封装,它提供了一个JDBCTemplate对象,简化JDBC的开发。
快速入门
导入jar包
创建JdbcTemplate对象,传递DataSource对象
- JdbcTemplate template = new JdbcTemplate(dataSource);
调用JdbcTemplate的方法,完成CRUD的操作
- update()
- queryForMap()
- queryForList()
- query()
- queryForObject()
方法
update
- update():执行DML增、删、改语句。
1 | /* 添加数据 */ |
1 | /* 修改数据 */ |
1 | /* 删除数据 */ |
queryForMap
- queryForMap():查询结果,将结果集封装为Map集合。(结果集长度只能是1)
- 将列名作为key,将字段作为value,将一条记录封装为一个map集合。
- 一个Map对应着一条记录。
1
2
3
4
5
6
7/* 查询一条记录,封装至Map集合 */
// SQL语句
String sql = "SELECT * FROM account WHERE id = ?";
// 调用queryForMap方法
Map<String, Object> map = jdbcTemplate.queryForMap(sql, 1 );
// 输出结果
System.out.println(map);
queryForList
- queryForList():查询结果,将结果集封装为List集合。
- 将每一条记录封装为一个Map集合,再将Map集合装载到List集合中。
- 一个List对应着一张表。
1
2
3
4
5
6
7
8
9/* 查询所有记录,封装至List集合 */
// SQL语句
String sql = "SELECT * FROM account";
// 调用queryForMap方法
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
// 输出结果
for (Map<String, Object> stringObjectMap : list) {
System.out.println(stringObjectMap);
}
query
- query():查询结果,将结果集封装为JavaBean对象。
- 将列名作为成员变量,将字段作为成员变量的值,将一条记录封装为一个JavaBean对象。
- 一个JavaBean对象对应着一条记录。
- query的参数:RowMapper接口
- 使用BeanPropertyRowMapper实现类,可以完成数据到JavaBean的自动封装。
- new BeanPropertyRowMapper<类型>(类型.class)
- 使用BeanPropertyRowMapper实现类,可以完成数据到JavaBean的自动封装。
传递RowMapper匿名内部类
1 | // JavaBean对象:Record |
1 | /* 查询所有记录,封装至List<Record>集合*/ |
传递BeanPropertyRowMapper实现类
- 注意,JavaBean对象中的成员变量类型一定要使用引用数据类型。
- 因为基本数据类型不能接受NULL值,而数据库中的字段可以设置为NULL值,所以在传递时,会发生类型转换的问题。
1 | // JavaBean对象:Record |
1 | /* 查询所有记录,封装至List<Record>集合*/ |
queryForObject
- queryForObject:查询结果,将结果集封装为对象。
- 用于聚合函数(查询表的记录数、列的最大数最小数平均数)
1
2
3
4
5
6/* 查询总记录数 */
String sql = "SELECT COUNT(id) FROM emp";
// 调用queryForObject方法
Integer integer = jdbcTemplate.queryForObject(sql, Integer.class);
// 输出结果
System.out.println(integer);
- 用于聚合函数(查询表的记录数、列的最大数最小数平均数)